package com.networkmanagerj.connection;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import com.networkmanagerj.model.Equipamento;

import de.mud.telnet.TelnetWrapper;

public class ConnectionPool {

	private static final Map<Integer, TelnetWrapper> POOL = new HashMap<Integer, TelnetWrapper>();

	public static TelnetWrapper getConnection(Equipamento equipamento)
			throws IOException {
		TelnetWrapper telnetWrapper = POOL.get(equipamento.getId());
		if (telnetWrapper == null) {
			System.out.println("Conectando com " + equipamento);
			telnetWrapper = new TelnetWrapper();
			telnetWrapper.setLocalEcho(true);
			telnetWrapper.connect(equipamento.getIp(), 23);
			System.out.println("Logando em " + equipamento);
			telnetWrapper.login(equipamento.getLogin(), equipamento.getSenha());
			System.out.println("Aguardando ] > de " + equipamento);
			telnetWrapper.waitfor("] >");
			POOL.put(equipamento.getId(), telnetWrapper);
		}
		return telnetWrapper;
	}
}
